The Basic Outline of a Tree Walking Interpreter =============================================== 1.) Start with a string in our language. "(&& (<= 23 25) (! (>= 100 300)))" 2.) Tokenizer.java produces a list of tokens. [ (, &&, (, <=, 23, 25, ), (, !, (, >=, 100, 300, ), ), ) ] 3.) Tree.java and BuildTree.java build an abstract syntax tree. && / \ / \ <= ! / \ | 23 25 | >= / \ 100 300 4.) Evaluate.java traverses the AST and yields a Value.java result. true 5.) PrettyPrinter.java traverses the AST and produces an indented string. "(&& (<= 23 25) (! (>= 100 300)))" 6.) AST2Infix.java traverses the AST and produces an infix notation string. "(23 <= 25) && !(100 >= 300)" 7.) Tree2Dot.java traverses the AST and produces a dot file that can be converted by dot.exe into a png image file of the AST.